Terraform একটি ওপেন সোর্স ইনফ্রাস্ট্রাকচার অ্যাজ কোড (IaC) টুল যা ব্যবহারকারীদের ক্লাউড ইনফ্রাস্ট্রাকচার তৈরি, কনফিগার এবং ম্যানেজ করতে সাহায্য করে। AWS-এ Terraform ব্যবহার করে আপনি সহজেই ইনফ্রাস্ট্রাকচার রিসোর্স যেমন EC2, S3, RDS, VPC ইত্যাদি তৈরি এবং পরিচালনা করতে পারেন। Terraform স্ক্রিপ্ট লিখে আপনি AWS রিসোর্সগুলো ডিপ্লয় করতে পারেন এবং পুনরায় ব্যবহারের জন্য কনফিগারেশনকে কোড আকারে সংরক্ষণ করতে পারেন।
Terraform মূলত HCL (HashiCorp Configuration Language) ভাষায় স্ক্রিপ্ট লেখে, যা ইনফ্রাস্ট্রাকচার রিসোর্সের কনফিগারেশন এবং ম্যানেজমেন্ট নির্ধারণ করে। Terraform রিসোর্সের স্টেট ফাইলের মাধ্যমে ইনফ্রাস্ট্রাকচারের বর্তমান অবস্থা ট্র্যাক করে এবং কনফিগারেশন পরিবর্তন হলে তা সিঙ্ক করে।
AWS-এ Terraform স্ক্রিপ্ট লেখার জন্য প্রথমে আপনাকে main.tf
নামে একটি ফাইল তৈরি করতে হবে। এই স্ক্রিপ্টে আপনি নির্দিষ্ট AWS রিসোর্স (যেমন EC2, S3, VPC ইত্যাদি) কনফিগার করবেন।
প্রথমে Terraform ইনস্টল করুন। Terraform ডাউনলোড পেজ থেকে আপনার সিস্টেমের জন্য উপযুক্ত ভার্সন ডাউনলোড করুন।
main.tf
ফাইলটি তৈরি করার আগে, আপনাকে AWS প্রোভাইডার কনফিগার করতে হবে। এটি Terraform কে AWS-এর সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়।
provider "aws" {
region = "us-west-2" # এখানে আপনার AWS রিজিয়ন সেট করুন
}
এখন একটি EC2 ইনস্ট্যান্স তৈরি করার জন্য Terraform স্ক্রিপ্ট লিখুন। নিচে একটি সাধারণ EC2 ইনস্ট্যান্স তৈরি করার স্ক্রিপ্ট দেওয়া হলো:
resource "aws_instance" "my_instance" {
ami = "ami-0c55b159cbfafe1f0" # AWS Marketplace থেকে সঠিক AMI ID নির্বাচন করুন
instance_type = "t2.micro" # ইনস্ট্যান্স টাইপ
key_name = "my-keypair" # আপনার SSH কী পেয়ার
tags = {
Name = "MyFirstInstance"
}
}
এছাড়াও আপনি একটি S3 বকেট তৈরি করতে পারেন, যা ফাইল স্টোরেজ হিসেবে ব্যবহৃত হবে। নিচে একটি উদাহরণ দেওয়া হলো:
resource "aws_s3_bucket" "my_bucket" {
bucket = "my-unique-bucket-name-12345"
acl = "private"
}
AWS VPC তৈরি করতে হলে, আপনাকে প্রথমে একটি VPC রিসোর্স কনফিগার করতে হবে। একটি সাধারণ VPC কনফিগারেশন নিচে দেওয়া হলো:
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
}
Terraform স্ক্রিপ্ট লেখা শেষে, প্রথমে ইনফ্রাস্ট্রাকচারকে ইনিশিয়ালাইজ করতে হবে। এটি প্রজেক্টের জন্য সমস্ত প্রয়োজনীয় প্লাগিন এবং ডিপেনডেন্সি ডাউনলোড করে।
terraform init
এটি Terraform কনফিগারেশনের পরিবর্তনগুলি দেখাবে যা AWS ইনফ্রাস্ট্রাকচারে প্রভাব ফেলবে। এটি একটি নিরাপদ পদ্ধতি, যেখানে আপনি প্রকৃত পরিবর্তন করার আগে এক নজরে দেখতে পারবেন কী পরিবর্তন হতে যাচ্ছে।
terraform plan
যখন আপনি নিশ্চিত হন যে Terraform কনফিগারেশন সঠিক, তখন আপনি apply কমান্ড দিয়ে রিসোর্স তৈরি বা পরিবর্তন করতে পারবেন। Terraform আপনাকে সকল পরিবর্তন কনফার্ম করতে বলবে, তারপর আপনি yes
টাইপ করলে রিসোর্স ডিপ্লয় হবে।
terraform apply
Terraform স্বয়ংক্রিয়ভাবে একটি terraform.tfstate
ফাইল তৈরি করবে, যা রিসোর্সের বর্তমান অবস্থা ট্র্যাক করবে। এই ফাইলটি ইনফ্রাস্ট্রাকচারের প্রতিটি পরিবর্তন দেখাবে এবং Terraformকে পরবর্তী পরিবর্তনগুলো সিঙ্ক করতে সাহায্য করবে।
যদি আপনি AWS রিসোর্সগুলি মুছে ফেলতে চান, তবে destroy
কমান্ড ব্যবহার করতে পারেন:
terraform destroy
এটি সমস্ত রিসোর্স মুছে ফেলবে এবং আপনার AWS অ্যাকাউন্টে কোনো অবশিষ্ট রিসোর্স থাকবে না।
Terraform ব্যবহার করে আপনি একাধিক ক্লাউড ইনফ্রাস্ট্রাকচারকে সহজে ম্যানেজ এবং ডিপ্লয় করতে পারেন, যা আপনার উন্নয়ন প্রক্রিয়াকে আরও দ্রুত এবং কার্যকরী করে তোলে।